home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 25
/
AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso
/
Updates
/
PowerPC
/
pdflib
/
bind
/
java
/
pdfclock.java
< prev
next >
Wrap
Text File
|
2000-05-16
|
3KB
|
116 lines
/* hello.java
* Copyright (C) 1997-99 Thomas Merz. All rights reserved.
*
* PDFlib client: pdfclock example in Java
*/
import java.text.*; // SimpleDateFormat
import java.util.*; // Date
public class pdfclock
{
public static void main (String argv[])
{
long p;
int tm_hour, tm_min, tm_sec, alpha;
float RADIUS = 200.0f;
float MARGIN = 20.0f;
SimpleDateFormat format;
Date now = new Date();
p = pdflib.PDF_new();
if (pdflib.PDF_open_file(p, "pdfclock_java.pdf") == -1) {
System.err.println("Couldn't open PDF file" +"pdfclock_java.pdf\n");
System.exit(1);
}
pdflib.PDF_set_info(p, "Creator", "pdfclock.java");
pdflib.PDF_set_info(p, "Author", "Thomas Merz");
pdflib.PDF_set_info(p, "Title", "PDF clock (Java)");
pdflib.PDF_begin_page(p, (int) (2 * (RADIUS + MARGIN)),
(int) (2 * (RADIUS + MARGIN)));
pdflib.PDF_set_transition(p, "wipe");
pdflib.PDF_set_duration(p, 0.5f);
pdflib.PDF_translate(p, RADIUS + MARGIN, RADIUS + MARGIN);
pdflib.PDF_setrgbcolor(p, 0.0f, 0.0f, 1.0f);
pdflib.PDF_save(p);
// minute strokes
pdflib.PDF_setlinewidth(p, 2.0f);
for (alpha = 0; alpha < 360; alpha += 6)
{
pdflib.PDF_rotate(p, 6.0f);
pdflib.PDF_moveto(p, RADIUS, 0.0f);
pdflib.PDF_lineto(p, RADIUS-MARGIN/3, 0.0f);
pdflib.PDF_stroke(p);
}
pdflib.PDF_restore(p);
pdflib.PDF_save(p);
// 5 minute strokes
pdflib.PDF_setlinewidth(p, 3.0f);
for (alpha = 0; alpha < 360; alpha += 30)
{
pdflib.PDF_rotate(p, 30.0f);
pdflib.PDF_moveto(p, RADIUS, 0.0f);
pdflib.PDF_lineto(p, RADIUS-MARGIN, 0.0f);
pdflib.PDF_stroke(p);
}
// how to correctly set the time zone?
format = new SimpleDateFormat("hh");
tm_hour= Integer.parseInt(format.format(now));
format = new SimpleDateFormat("mm");
tm_min = Integer.parseInt(format.format(now));
format = new SimpleDateFormat("ss");
tm_sec = Integer.parseInt(format.format(now));
// draw hour hand
pdflib.PDF_save(p);
pdflib.PDF_rotate(p, (-((tm_min/60.0f) + tm_hour - 3.0f) * 30.0f));
pdflib.PDF_moveto(p, -RADIUS/10, -RADIUS/20);
pdflib.PDF_lineto(p, RADIUS/2, 0.0f);
pdflib.PDF_lineto(p, -RADIUS/10, RADIUS/20);
pdflib.PDF_closepath(p);
pdflib.PDF_fill(p);
pdflib.PDF_restore(p);
// draw minute hand
pdflib.PDF_save(p);
pdflib.PDF_rotate(p, (-((tm_sec/60.0f) + tm_min - 15.0f) * 6.0f));
pdflib.PDF_moveto(p, -RADIUS/10, -RADIUS/20);
pdflib.PDF_lineto(p, RADIUS * 0.8f, 0.0f);
pdflib.PDF_lineto(p, -RADIUS/10, RADIUS/20);
pdflib.PDF_closepath(p);
pdflib.PDF_fill(p);
pdflib.PDF_restore(p);
// draw second hand
pdflib.PDF_setrgbcolor(p, 1.0f, 0.0f, 0.0f);
pdflib.PDF_setlinewidth(p, 2);
pdflib.PDF_save(p);
pdflib.PDF_rotate(p, -((tm_sec - 15.0f) * 6.0f));
pdflib.PDF_moveto(p, -RADIUS/5, 0.0f);
pdflib.PDF_lineto(p, RADIUS, 0.0f);
pdflib.PDF_stroke(p);
pdflib.PDF_restore(p);
// draw little circle at center
pdflib.PDF_circle(p, 0f, 0f, RADIUS/30);
pdflib.PDF_fill(p);
pdflib.PDF_restore(p);
pdflib.PDF_end_page(p);
pdflib.PDF_close(p);
pdflib.PDF_delete(p);
}
}